package com.example.spring.bean.load08lifecycle.interfaceImpl;

import org.springframework.beans.factory.DisposableBean;
import org.springframework.beans.factory.InitializingBean;

/**
 * spring管理 Bean 生命周期的接口
 * <p> InitializingBean#afterPropertiesSet 进行初始化
 * <p> DisposableBean#destroy 进行销毁
 */
class CarImplBean implements InitializingBean, DisposableBean {


    /**
     * InitializingBean(定义初始化逻辑)
     * afterPropertiesSet()方法:当beanFactory创建好对象,且把bean所有属性设置好之后,会调这个方法,相当于初始化方法
     */
    @Override
    public void afterPropertiesSet() throws Exception {
        System.out.println("initializing car...");
    }

    /**
     * DisposableBean(定义销毁逻辑)
     * destroy()方法,当bean销毁时,会把单实例bean进行销毁
     */
    @Override
    public void destroy() throws Exception {
        System.out.println("destroying car...");
    }
}
